# map函数
from functools import reduce

map_iter = map(lambda x: x+1, [1, 2, 3])
print(list(map_iter))

# 使用列表推导式实现map函数
list2 = [i+1 for i in range(1, 4)]
print(list2)

# filter函数
list_filter = filter(lambda x:  x == 'a' or x == 'A', 'abcdABCD')
print(list(list_filter))

# 使用列表推导式实现filter函数
list3 = [i for i in 'abcdABCD' if i == 'a' or i == 'A']
print(list3)

# reduce高阶函数
reduce_result = reduce(lambda x, y: x-y if x >= y else y-x, [2, 3, 1, 4])
print(reduce_result)

# 使用列表推导式难以实现reduce高阶函数，要传入两个参数
